export class Checked {
  constructor() {

  }

  checkRow(array, i, j) {
    const val = array[i][j];
    console.log(val)
    for (let n = 0; n < 9; n++) {
      if (array[n][j] === val) {
        return false;
      }
    }
    return true;
  }

  checkCol(array, i, j) {
    const val = array[i][j];
    console.log(val)
    for (let n = 0; n < 9; n++) {
      if (array[i][n] === val) {
        return false;
      }
    }
    return true;
  }

  checkGrid(array, i, j) {
    const val = array[i][j];
    // 我自己想的算法，可能时间复杂度比较高
    // 拿到每一个宫的左上角,然后再循环
    if (i >= 1 && i <= 3) {
      i = 1;
    }
    if (i >= 4 && i <= 6) {
      i = 4;
    }
    if (i >= 7 && i <= 9) {
      i = 7;
    }
    if (j >= 1 && j <= 3) {
      j = 1;
    }
    if (j >= 4 && j <= 6) {
      j = 4;
    }
    if (j >= 7 && j <= 9) {
      j = 7;
    }
    // 把宫内的数据，放到一个集合
    let temp = [];
    for (let l = i; l <= i + 2; l++) {// 横
      for (let c = j; c <= j + 2; c++) {// 纵
        temp = [...temp, ...array[l][c]];
      }
    }
    console.log(temp)
    const s = [...new Set(temp)];
    if (s.length === 9) {
      return true;
    } else {
      return false;
    }
  }
}
